| Автор перевода: Майкл "Antares" Клишин | Предыдущая | Следующая | Оглавление |
Flash Player 6.
SharedObject.getLocal(objectName:String[,localPath:String]): SharedObject
Замечание: Корректным синтаксисом является SharedObject.getLocal. Чтобы присвоим ссылку на объект переменной, используйте такой синтаксис: myLocal_so = SharedObject.getLocal.
objectName Строка, представляющая имя объекта shared object (SO). Имя может включать слэш-символы (/); например, work/addresses является корректным именем. Однако, пробелы и следующие символы в имени SO использовать запрещено:
~ % & \ ; : " ' , < > ? #
localPath Необязательный параметр, указывающий полный или относительный путь к SWF файлу, создавшему shared object, определяющий, где SO располагается на диске. Значением по умолчанию является полный путь. Смотри раздел Описание.
Ссылку на shared object, хранящийся локально и доступный только данному клиенту. В случае, если Flash не может найти shared object (например, если параметр localPath определен, но такого пути не существует), возвращается null.
Метод; возвращает ссылку на shared object.
Замечание: Если пользователь запретил сохранение данных роликам из данного домена, данные локально не сохраняются и не могут быть получены, даже при указании параметра localPath. Для более подробной информации смотри Выделение дискового пространства.
Чтобы избежать конфликта имен, Flash хранит SO, созданные разными SWF файлами, раздельно, то есть если SWF файл в www.myCompany.com/apps/stockwatcher.swf создает shared object portfolio, то данный shared object не будет конфликтовать с SO portfolio, созданным SWF роликом www.yourCompany.com/photoshoot.swf, т.к. файлы, их создавшие, принадлежат разным директориям.
Хотя параметр localPath является необязательным, разработчикам стоит задуматься о его использовании, особенно если несколько роликов требуют доступ к одному shared object. Если данные в shared object связаны с одним SWF файлом, который не будет перемещен или переименован, использование значения по умолчанию имеет смысл. Если же SWF файлам необходим доступ к одному shared object или SWF файл, создающий shared object, в будущем будет перемещен, значение этого параметра может повлиять на то, получат ли SWF файлы доступ к shared object. Например, если Вы создаете shared object с параметром localPath, имеющим значение по умолчанию, прочие SWF файлы смогут получить доступ к shared object. Если после этого оригинальный SWF будет перемещен, то другие SWF файлы не смогут получить доступ к данным, уже находящимся в shared object.
Вы можете снизить вероятность, с которой Вы неумышленно запретите доступ к shared object, используя параметр localpath. Чтобы предоставить наиболее возможно полный уровень доступа, передайте параметру localPath значение "/", делающее shared object доступным для всех роликов в домене, однако, с другой стороны, одновременно повышая вероятность конфликта имен. Также можно использовать в значении, передаваемом параметру localPath имена папок из полного пути SWF файла. Например, параметр localPath для SO portfolio, созданного SWF файлом www.myCompany.com/apps/stockwatcher.swf, может быть таким: "/"; "/apps"; либо "/apps/stockwatcher.swf". Какой именно вариант выбрать, зависит от гибкости, необходимой вашему приложению.
В следующем примере создается shared object, в котором хранится текст, введенный в экземпляр компонента TextInput. Итоговый SWF загружает сохраненный текст из shared object при начале проигрывания. При каждом нажатии пользователем Enter, текст в текстовом поле сохраняется в shared object. Перетащите компонент TextInput на Сцену и назовите его myText_ta. Скопируйте код в кадр главного Таймлайна (не забыв снять выделение с компонента):
// Создаем shared object и устанавливаем путь к корневому каталогу
var my_so:SharedObject = SharedObject.getLocal("savedText", "/");
// Считываем текст из shared object в компонент myText_ti
myText_ti.text = my_so.data.myTextSaved;
// Если SO отсутствует, то есть запуск первый, чтобы избежать отображения
// в myText_ti строки "undefined", заменяем это значение пустой строкой
if (myText_ti.text == undefined) {
myText_ti.text = "";
}
// Создаем листнер и обработчик события <enter>
var textListener:Object = new Object();
textListener.enter = function(eventObj:Object) {
my_so.data.myTextSaved = eventObj.target.text;
my_so.flush();
};
// Регистрируем листенер в списке листенеров компонента TextInput
myText_ti.addEventListener("enter", textListener);
В следующем примере номер последнего кадра сохраняется в shared object с именемkookie:
// Считываем значение SO c орфографически неправильным именем kookie
var my_so:SharedObject = SharedObject.getLocal("kookie");
// Получаем из SO kookie имя пользователя и номер кадра.
if (my_so.data.user != undefined) {
this.user = my_so.data.user;
this.gotoAndStop(my_so.data.frame);
}
Следующий блок кода поместите в кадр SWF файла:
// При входе в кадр функция rememberme сохраняет номер кадра.
function rememberme() {
my_so.data.frame=this._currentframe;
my_so.data.user="John";
}
| Смотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |